package com.example.jsd2205.vx.emos.db.dao;

import com.example.jsd2205.vx.emos.db.pojo.TbUser;
import org.apache.ibatis.annotations.Mapper;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;
import java.util.List;
/**
 * tb_userDao
 * @author admin兰
 * @author admin闫
 */
@Mapper
public interface TbUserDao {
    public boolean haveRootUser();
    //插入信息是否成功
    public int insert(HashMap param);
    //根据OpenId查询用户ID
    public Integer searchIdByOpenId(String OpenId);
    //查询用户的权限
    public Set<String> searchUserPermissions(int userId);
    //根据在职用户id查询所有信息
    public TbUser searchById(int userId);

    /**
     * 根据员工id查询 姓名与部门名称
     * @param userId
     * @return HashMap
     */
    public HashMap searchNameAndDept(int userId);

    /**
     * 查询员工入职日期
     * @param userId
     * @return String
     */
    public String searchUserHiredate(int userId);

    /**
     * 查询用户概要信息
     * @param userId
     * @return HashMap
     */
    public HashMap searchUserSummary(int userId);

    /**
     * 查询用户列表
     * @param keyword
     * @return
     */
    public ArrayList<HashMap> searchUserGroupByDept(String keyword);

    /**
     * 查询用户信息
     * @param param
     * @return ArrayList<HashMap>
     */
    public ArrayList<HashMap> searchMembers(List param);

    /**
     * 查询用户概要
     * @param userId
     * @returnHashMap
     */
    public HashMap searchUserInfo(int userId);

    /**
     * 查询部门经理ID
     * @param id
     * @return int
     */
    public int searchDeptManagerId(int id);

    /**
     * 查询总经理ID
     * @return int
     */
    public int searchGmId();

    /**
     * 查询用户头像和姓名
     * @param param
     * @return List<HashMap>
     */
    public List<HashMap> selectUserPhotoAndName(List param);

    /**
     * 查询用户邮箱
     * @param id
     * @return String
     */
    public String searchMemberEmail(int id);


}